package com.notary.tx_live_plugin.util;

public @interface TxConstant {
    /**
     * plugin进行registerViewFactory注册，PlatformFactory的id值
     */
    String PLATFORM_FACTORY = "com.notary.tx_live_plugin/tx_live_plugin";

    @interface Channel{
        /**
         * 当前插件plugin总的 channel名称，用于plugin初始化
         */
        String PLUGIN = "com.notary.tx_live_plugin";
        /**
         * 直播录像view，的channel name前缀，后面内容是int型的id值，标志不同的控件
         */
        String PUSH_PREFIX = "com.notary.tx_live_plugin/tx_live_push_";
        /**
         * 直播视频在线播放view，的channel name前缀，后面内容是int型的id值，标志不同的控件
         */
        String PLAY_PREFIX = "com.notary.tx_live_plugin/tx_live_play_";
        /**
         * 视频聊天会议
         */
        String CHAT_PREFIX = "com.notary.tx_live_plugin/tx_live_chat_";
    }

    @interface PluginMethod{
        String init = "init";
        String getPlatformVersion = "getPlatformVersion";
    }

    /**
     * 播放推流视频，相关方法名称
     */
    @interface PlayMethod{
        String startPlay = "startPlay";
        String stopPlay = "stopPlay";
        String onPause = "onPause";
        String onResume = "onResume";
        String onDestroy = "onDestroy";
        String firstPlayRtmp = "firstPlayRtmp";
        String isPlaying = "isPlaying";
        String seek = "seek";

        @interface Back{
            String error = "error";
            String toast = "toast";
            String startPlay = "startPlay";
            String startLoading = "startLoading";
            String playProcess = "playProcess";
            String playStatus = "playStatus";
            String checkPlayForNotWifi = "checkPlayForNotWifi";
        }

        @interface Key{
            String urls = "urls";
            String cacheFilePath = "cacheFilePath";
            String progress = "progress";
            String duration = "duration";
            String playable = "playable";
            String startTime = "startTime";
            String durationTime = "durationTime";
            String seekProgress = "progress";
        }
    }

    /**
     * 推流相关方法名称
     */
    @interface PushMethod{
        String startLivePush = "startLivePush";
        String stopLivePush = "stopLivePush";
        String onPause = "onPause";
        String onResume = "onResume";
        String onDestroy = "onDestroy";
        String isPushRecording = "isPushRecording";
        String turnOnFlashLight = "turnOnFlashLight";
        String isFlashLightOpen = "isFlashLightOpen";
        String isFontCamera = "isFontCamera";
        String switchCamera = "switchCamera";

        @interface Back {
            String toast = "toast";
            String notifyPushStart = "notifyPushStart";
            String videoProcessListener = "videoProcessListener";
            String stopLivePush = "stopLivePush";
            String toastSnackBar = "toastSnackBar";
            String error = "error";
        }

        @interface Key {
            String url = "url";
            String serverTime = "serverTime";
            String isBitrateStandard = "isBitrateStandard";
            String cameraError = "cameraError";
            String needNoticeServer = "needNoticeServer";
        }
    }

    /**
     * 聊天会议
     */
    @interface ChatMethod{
        String startChat = "startChat";
        String stopChat = "stopChat";
        String onPause = "onPause";
        String onResume = "onResume";
        String onDestroy = "onDestroy";
        String isCreating = "isCreating";
        String isOpenAudio = "isOpenAudio";
        String switchAudio = "switchAudio";

        @interface Back{
            String toast = "toast";
            String fail = "fail";
            String notifyRoomCreate = "notifyRoomCreate";
            String startTime = "startTime";
        }
        @interface Key {
            String intoRoom = "intoRoom";
            String timeCount = "timeCount";

            //StartChat 开始视频会议时，需要的参数名称
            String sdkAppId = "sdkAppId";
            String roomId = "roomId";
            String userId = "userId";
            String userSign = "userSign";
        }
    }

    /**
     * 用于platformViewFactory 工厂区分不同platformView
     */
    @interface ViewType{
        /**
         * 获取控件类型时，使用的key名称
         */
        String view = "tx_live_view_type";
        /**
         * 直播录像类型
         */
        String PUSH = "tx_live_push";
        /**
         * 直播视频在线播放
         */
        String PLAY = "tx_live_play";
        /**
         * 聊天会议，
         */
        String CHAT = "tx_live_chat";
    }
}
